package job;

import java.util.HashMap;

/**
 * Une ligne est composée (ArrayList) de blocks.
 * @author Flav
 *
 */
public class Row {
	/** Table de hachage contenant les
	 *  blocks qui forme la ligne */
	private HashMap<Integer,Block> blocksPos;
	public Row() {
		this.blocksPos = new HashMap<Integer,Block>();
	}
	/** 
	 * Construit une ligne avec des blocks donnés dans
	 * un tableau de position des blocks sur la ligne 
	 * @param blocks est un tableau d'entier représentant la position des blocks
	 */
	public Row(int[] blocks, int[] color) {
		this();
		this.addBlocks(blocks, color);
	}
	/** Ajoute un block à la position i */
	public void addBlock(int i, int color) {
		blocksPos.put(i, new Block(color));
	}
	/** Ajoute n blocks */
	public void addBlocks(int[] bPos, int[] color) {
		for(int i : bPos) {
			this.addBlock(i, color[i]);
		}
	}
	/** Retourne le block de la postion i ou null s'il n'y en a pas */
	public Block getBlock(int i) {
		return blocksPos.get(i);
	}
	/** Retourne false si un block occupe la position i, true sinon */
	public boolean isEmpty(int i) {
		if(blocksPos.get(i) == null)
			return true;
		return false;
	}
}
